package com.hl.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;

/**
 * 积分商品对象 point_products
 * 
 * @author vv
 * @date 2025-08-07
 */
public class PointProducts extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 积分商品主键ID */
    private String id;

    /** 关联商品表ID */
    private String productId;

    /** 关联店铺表ID */
    @Excel(name = "关联店铺表ID")
    private String shopId;

    /** 关联商品名称 */
    @Excel(name = "商品名称")
    private String productName;

    /** 关联商品编码 */
    @Excel(name = "商品编码")
    private String productSn;

    /** 关联商品价格 */
    @Excel(name = "结算价")
    private Long price;

    /** 关联商品原价 */
    @Excel(name = "市场价")
    private Long originalPrice;

    public String getProductName() {
        return productName;
    }

    public void setProductName(String productName) {
        this.productName = productName;
    }

    public String getProductSn() {
        return productSn;
    }

    public void setProductSn(String productSn) {
        this.productSn = productSn;
    }

    public Long getPrice() {
        return price;
    }

    public void setPrice(Long price) {
        this.price = price;
    }

    public Long getOriginalPrice() {
        return originalPrice;
    }

    public void setOriginalPrice(Long originalPrice) {
        this.originalPrice = originalPrice;
    }

    public Long getStock() {
        return stock;
    }

    public void setStock(Long stock) {
        this.stock = stock;
    }

    public String getStoreName() {
        return storeName;
    }

    public void setStoreName(String storeName) {
        this.storeName = storeName;
    }

    public String getCategoryName() {
        return categoryName;
    }

    public void setCategoryName(String categoryName) {
        this.categoryName = categoryName;
    }

    /** 关联商品库存 */
    @Excel(name = "商品库存")
    private Long stock;
    /** 兑换积分 */

    private Long exchangePointsMin;
    /** 兑换积分 */

    private Long exchangePointsMax;

    public Long getExchangePointsMin() {
        return exchangePointsMin;
    }

    public void setExchangePointsMin(Long exchangePointsMin) {
        this.exchangePointsMin = exchangePointsMin;
    }

    public Long getExchangePointsMax() {
        return exchangePointsMax;
    }

    public void setExchangePointsMax(Long exchangePointsMax) {
        this.exchangePointsMax = exchangePointsMax;
    }

    /** 关联店铺名称 */
    @Excel(name = "店铺名称")
    private String storeName;

    /** 关联商品分类名称 */
    @Excel(name = "商品分类名称")
    private String categoryName;

    /** 关联积分商品分类表ID */
    @Excel(name = "关联积分商品分类表ID")
    private String categoryId;

    /** 库存数量 */
    @Excel(name = "库存数量")
    private Long stockQuantity;

    /** 活动剩余库存 */
    @Excel(name = "活动剩余库存")
    private Long activityRemainingStock;

    /** 兑换积分 */
    @Excel(name = "兑换积分")
    private Long exchangePoints;

    /** 活动开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "活动开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date activityStartTime;

    /** 活动结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "活动结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date activityEndTime;

    /** 状态 */
    @Excel(name = "状态")
    private String status;

    public void setId(String id) 
    {
        this.id = id;
    }

    public String getId() 
    {
        return id;
    }

    public void setProductId(String productId) 
    {
        this.productId = productId;
    }

    public String getProductId() 
    {
        return productId;
    }

    public void setShopId(String shopId) 
    {
        this.shopId = shopId;
    }

    public String getShopId() 
    {
        return shopId;
    }

    public void setCategoryId(String categoryId) 
    {
        this.categoryId = categoryId;
    }

    public String getCategoryId() 
    {
        return categoryId;
    }

    public void setStockQuantity(Long stockQuantity) 
    {
        this.stockQuantity = stockQuantity;
    }

    public Long getStockQuantity() 
    {
        return stockQuantity;
    }

    public void setActivityRemainingStock(Long activityRemainingStock) 
    {
        this.activityRemainingStock = activityRemainingStock;
    }

    public Long getActivityRemainingStock() 
    {
        return activityRemainingStock;
    }

    public void setExchangePoints(Long exchangePoints) 
    {
        this.exchangePoints = exchangePoints;
    }

    public Long getExchangePoints() 
    {
        return exchangePoints;
    }

    public void setActivityStartTime(Date activityStartTime) 
    {
        this.activityStartTime = activityStartTime;
    }

    public Date getActivityStartTime() 
    {
        return activityStartTime;
    }

    public void setActivityEndTime(Date activityEndTime) 
    {
        this.activityEndTime = activityEndTime;
    }

    public Date getActivityEndTime() 
    {
        return activityEndTime;
    }

    public void setStatus(String status) 
    {
        this.status = status;
    }

    public String getStatus() 
    {
        return status;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("productId", getProductId())
            .append("shopId", getShopId())
            .append("categoryId", getCategoryId())
            .append("stockQuantity", getStockQuantity())
            .append("activityRemainingStock", getActivityRemainingStock())
            .append("exchangePoints", getExchangePoints())
            .append("activityStartTime", getActivityStartTime())
            .append("activityEndTime", getActivityEndTime())
            .append("status", getStatus())
            .toString();
    }
}
